package com.improve.frame.log.domain;

import com.baomidou.mybatisplus.annotation.SqlCondition;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.improve.frame.common.domain.IdEntity;
import com.improve.frame.common.enums.BusinessStatus;
import com.improve.frame.log.enums.OperationType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * @Description
 *      系统日志
 * @Author wzxing918
 * @Date 2021-03-31
 * @Version 1.0.0
 **/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_log")
@ApiModel(description = "系统日志")
public class SysLog extends IdEntity {
    /**
     * 请求URL
     */
    @ApiModelProperty(value = "请求URL", name = "requestUrl")
    private String requestUrl;
    /**
     * 请求方式
     */
    @ApiModelProperty(value = "请求方式", name = "requestMethod")
    private String requestMethod;
    /**
     * 方法名称
     */
    @ApiModelProperty(value = "方法名称", name = "methodName")
    @TableField(condition = SqlCondition.LIKE)
    private String methodName;
    /**
     * 请求参数
     */
    @ApiModelProperty(value = "请求参数", name = "requestParam")
    private String requestParam;
    /**
     * 模块名称
     */
    @ApiModelProperty(value = "模块名称", name = "moduleName")
    @TableField(condition = SqlCondition.LIKE)
    private String moduleName;
    /**
     * 操作编码
     */
    @ApiModelProperty(value = "操作编码", name = "operatorCode")
    private String operatorCode;
    /**
     * 操作人员
     */
    @ApiModelProperty(value = "操作人员", name = "operatorName")
    private String operatorName;
    /**
     * 主机地址
     */
    @ApiModelProperty(value = "主机地址", name = "operatorIp")
    private String operationIp;
    /**
     * 操作浏客户端
     */
    @ApiModelProperty(value = "操作浏客户端", name = "operationClient")
    private String operationClient;
    /**
     * 操作浏浏览器
     */
    @ApiModelProperty(value = "操作浏浏览器", name = "operationBrowser")
    private String operationBrowser;
    /**
     * browserVersion
     */
    @ApiModelProperty(value = "浏览器版本", name = "browserVersion")
    private String browserVersion;
    /**
     * 操作类别
     */
    @ApiModelProperty(value = "操作类别", name = "operatorType")
    private OperationType operationType;
    /**
     * 操作描述
     */
    @ApiModelProperty(value = "操作描述", name = "operationDesc")
    @TableField(condition = SqlCondition.LIKE)
    private String operationDesc;
    /**
     * 业务状态
     */
    @ApiModelProperty(value = "业务状态", name = "businessStatus")
    private BusinessStatus businessStatus;
    /**
     * 操作结果
     */
    @ApiModelProperty(value = "操作结果", name = "operationResult")
    private String operationResult;
    /**
     * 响应结果
     */
    @ApiModelProperty(value = "响应结果", name = "responseResult")
    private String responseResult;
    /**
     * 操作耗时
     */
    @ApiModelProperty(value = "操作耗时", name = "operationTime")
    private Long operationTime;
    /**
     * 错误消息
     */
    @ApiModelProperty(value = "错误消息", name = "errorMsg")
    private String errorMsg;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", name = "createTime")
    protected Date createTime;
}
